#pragma once
#include "SevenZipArchiveItem.h"

namespace SevenZip
{

struct CSevenZipArchiveItemMap
{
	CSevenZipArchiveItemMap(CONST CComPtr<IInArchive> &);

	STDMETHODIMP AddItem(UINT32);

	CSevenZipArchiveItem * GetRoot()
	{
		return _Root;
	}

private:

	STDMETHODIMP FindItemByPath(CONST CStringW &, CSevenZipArchiveItem * &);
	STDMETHODIMP GetParentItem(__in CSevenZipArchiveItem *, CSevenZipArchiveItem * &);

private:

	typedef CAtlMap<CStringW, CSevenZipArchiveItem *, CStringElementTraitsI<CStringW>> CItemMap;

private:

	CItemMap _Map;
	CSevenZipArchiveItem * _Root;

	CComPtr<IInArchive> _InArchive;
};

}